package org.erp.product.domain.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.erp.product.infrastructure.enums.ConnectStatusEnum;

import java.util.Date;

import static com.fasterxml.jackson.annotation.JsonProperty.Access.READ_ONLY;

/**
 * 仓库调拨响应实体
 *
 * @author libin
 * @version 1.0
 * @description: 仓库调拨响应实体
 * @date 2025/11/14 15:07
 **/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ConnectLogVo {
    /**
     * 自增id
     */
    private Long id;
    /**
     * 库存id
     */
    private Long stockId;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 产品imei
     */
    private String productImei;
    /**
     * 背贴码
     */
    private String productCode;
    /**
     * 租户id
     */
    private Long tenantId;
    /**
     * 租户名称
     */
    private String tenantName;
    /**
     * 操作人id
     */
    private Long operationId;
    /**
     * 操作人名称
     */
    private String operationName;
    /**
     * 转交人id
     */
    private Long transferId;
    /**
     * 转交人名称
     */
    private String transferName;
    /**
     * 部门id
     */
    private Long deptId;
    /**
     * 部门名称
     */
    private String deptName;
    /**
     * 采购价
     */
    private Integer costPrice;
    /**
     * 采购溢价
     */
    private Integer dickerPrice;
    /**
     * 操作前状态
     */
    private Integer oldStatus;
    /**
     * 操作前状态字符串
     */
    @JsonProperty(access = READ_ONLY)
    private Integer oldStatusStr;
    /**
     * 操作后状态
     */
    private Integer newStatus;
    /**
     * 操作后状态字符串
     */
    @JsonProperty(access = READ_ONLY)
    private String newStatusStr;
    /**
     * 创建时间
     */
    private Date createTime;

    public String getOldStatusStr() {
        return ConnectStatusEnum.getMessageByCode(this.oldStatus);
    }

    public String getNewStatusStr() {
        return ConnectStatusEnum.getMessageByCode(this.newStatus);
    }
}
